iT邦幫忙

2024 iThome 鐵人賽

DAY 28
0
Kubernetes

Kubernetes圖解筆記系列 第 28

Day-28 Metrics Server

  • 分享至 

  • xImage
  •  

Kubernetes 的基礎工具 (=゚ω゚)ノ


Kubernetes 作為一個強大的容器管理系統,內建了許多高可用性的設計機制,以確保部署在其中的系統能夠穩定、可靠地提供服務。這些機制包括自動擴縮、負載均衡、自我修復等功能,大幅度提高了系統的可靠性和彈性。然而,對於絕大多數的使用者來說,依賴這些內建機制還是不夠安心。如果無法直接看到具體的指標,總會覺得心裡有點虛,對吧 ( ̄∇ ̄)

使用雲平台提供的 Kubernetes 服務時,通常不太需要擔心這個問題。因為大多數雲服務的供應商都會預設提供全面的監控解決方案,讓使用者可以輕鬆地查看 Cluster 運行當下的各項指標和資訊。但是,如果選擇自行架設 Kubernetes 環境,如何有效地監控和收集關鍵指標就成為了不可忽視的挑戰。

在討論工具之前,先認識負責提供運作資料的組件:Metrics Server

Metrics Server


Metrics Server 是一個 Cluster 內的組件,專門用於收集 Cluster 中所有 Node 和 Pod 的資源使用量(如 CPU 和 Memory)。這些資料通常用於自動化的資源擴展,如水平 Pod 自動擴展(HPA)。

主要功能

  • 資源使用資料收集
    Metrics Server 會從每個 Node 的 kubelet 收集資源使用資訊,並將這些資訊整合後提供給 kube-apiserver。
  • 支援自動擴展
    • Horizontal Pod Autoscaler (HPA) 會使用 Metrics Server 提供的即時資訊作為動態擴展或縮減 Pod 數量的根據。
    • Vertical Pod Autoscaler (VPA) 也可以依賴 Metrics Server 的數據來調整單個 Pod 的資源分配。

    VPA:VerticalPodAutoscaler,用以實現 Pod 的垂直擴張。
    它不是 Kubernetes 的預設組件,需要自行手動安裝。

  • 即時監控
    Metrics Server 專注於即時的資訊,它不會存儲長期的歷史資料。也因此,它非常輕量級,適合用來做即時的決策,而非長期的性能分析。

Metrics Server 也是執行在 Control Plane 中嗎?

不是喔~
它和一般 Pod 一樣運作在普通的 Node 上(除非手動指定)。當環境中有多個 Control Plane 和多個 Worker Node,它可能會運行在任何一個 Node 上。
不過,它通常會被歸在 kube-system 命名空間中。

https://ithelp.ithome.com.tw/upload/images/20240929/20168437PbSaoHjmDy.png

Metrics Server 並不是預設安裝的組件,需要手動安裝。
(託管在供應商平台上 Kubernetes,通常會自動配置完整的監控方案,其實也不太需要自行建置...)

安裝

要確定目前環境是否可用,可以執行以下指令:

kubectl get apiservice v1beta1.metrics.k8s.io

https://ithelp.ithome.com.tw/upload/images/20240929/20168437jMov5vCAee.png

minikube 中,雖然有預先安裝但並不是啟用狀態,可以用以下指令啟用:

minikube addons enable metrics-server

https://ithelp.ithome.com.tw/upload/images/20240929/20168437dOtHWczZZW.png

如果是其他環境,可以用以下指令執行安裝最新版本:

kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml

附上GIT專案路徑:metrics-server
https://ithelp.ithome.com.tw/upload/images/20240929/20168437XZ23BEXbnO.png

安裝完成後,就可以執行指令確認 Cluster 目前的資源使用情況:

# 查看 node
kubectl top node
# 查看 pod
kubectl top pod

https://ithelp.ithome.com.tw/upload/images/20240929/201684374ZEuZF3T3d.png

如果想確認 Metrics Server 運行在哪個 Pod 上,可以執行這個指令:

kubectl get pods -n kube-system -o wide | grep metrics-server

小結

Metrics Server 常用於:

  • Pod 和節點監控:快速查看即時的資源使用情況。
  • 自動擴展(HPA):根據資源使用率自動擴展 Pod 的數量。
  • 資源優化:通過分析即時數據來進行資源優化決策。

不但是輕量且高效的工具,應用起來也非常簡單,是 Kubernetes 中監控應用中不可或缺的基礎元件。


上一篇
Day-27 DaemonSet
下一篇
Day-29 變數管理
系列文
Kubernetes圖解筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言